home *** CD-ROM | disk | FTP | other *** search
- /* ModelessStuff.c -- modeless dialog */
-
- #include <Types.h>
- #include <Quickdraw.h>
- #include <Controls.h>
- #include <Dialogs.h>
- #include <Events.h>
- #include <Lists.h>
- #include <Menus.h>
- #include <TextEdit.h>
- #include <Appearance.h>
- #include <stdlib.h>
-
- #include "ResourceDefs.h"
- #include "Miscellany.h"
- #include "ControlUtils.h"
-
- #include "Dispatcher.h"
- #include "ModelessStuff.h"
-
- #define kToolsPalette 1
- #define kPopupsBox 2
- #define kFromValuesList2Popup 3
- #define kFromMenuPopup 4
- #define kListsBox 5
- #define kTextListList 6
-
- static void BuildTextListList (ControlHandle inControl);
-
- /*----------*/
- static void BuildTextListList (
- ControlHandle inControl)
- {
- ListHandle list;
-
- list = GetListHandle (inControl);
- AddToList ("\pOne", list);
- AddToList ("\pTwo", list);
- AddToList ("\pThree", list);
- AddToList ("\pInfinity", list);
-
- }
-
- //----------
- DialogPtr ModelessStuffDialog = nil;
-
- //----------
- void ModelessStuff_Create ()
- {
- ModelessStuff* dialog = NewModelessStuff ();
- DModelessStuffData* data = NewDModelessStuffData ();
-
- AMDialog_MakeDialog ((AMDialog*)dialog, DLOG_ModelessStuff);
- ModelessStuff_ConnectToData (dialog, (AMSignaler*)data);
- }
-
- //----------
- void ModelessStuff_Show ()
- {
- if (ModelessStuffDialog == nil) {
- ModelessStuff_Create ();
- }
- if (ModelessStuffDialog != nil) {
- SelectWindow (ModelessStuffDialog);
- ShowWindow (ModelessStuffDialog);
- }
- }
-
- //----------
- void ModelessStuff_Close ()
- {
- HideWindow (ModelessStuffDialog);
- }
-
- //----------
- ModelessStuff* NewModelessStuff ()
- {
- ModelessStuff* dialog;
-
- dialog = (ModelessStuff*)malloc (sizeof (ModelessStuff));
- ModelessStuff_Init (dialog);
- SetClassID (dialog, classModelessStuff);
-
- return dialog;
- }
-
- //----------
- void DeleteModelessStuff (
- ModelessStuff* dialog)
- {
- ModelessStuff_Free (dialog);
- free (dialog);
- }
-
- //----------
- void ModelessStuff_Init (
- ModelessStuff* self)
- {
- AMDialog_Init ((AMDialog*)self);
- }
-
- //----------
- void ModelessStuff_Free (
- ModelessStuff* self)
- {
- AMDialog_Free ((AMDialog*)self);
- }
-
- //----------
- void ModelessStuff_FinishMake (
- ModelessStuff* self)
- {
- ModelessStuffDialog = ((AMDialog*)self)->mDialog;
-
- self->mToolsHandle = AMDialog_GetControlItem ((AMDialog*)self, kToolsPalette);
- self->mPopupsHandle = AMDialog_GetControlItem ((AMDialog*)self, kPopupsBox);
- self->mFromValuesList2Handle = AMDialog_GetControlItem ((AMDialog*)self, kFromValuesList2Popup);
- self->mFromMenuHandle = AMDialog_GetControlItem ((AMDialog*)self, kFromMenuPopup);
- self->mListsHandle = AMDialog_GetControlItem ((AMDialog*)self, kListsBox);
- self->mTextListHandle = AMDialog_GetControlItem ((AMDialog*)self, kTextListList);
- }
-
- //----------
- void ModelessStuff_ConnectToData (
- ModelessStuff* self,
- AMSignaler* inData)
- {
- AMDialog_ConnectToData ((AMDialog*)self, inData);
- self->mData = (DModelessStuffData*) inData;
-
- SetControlValue (self->mToolsHandle, GetTools3 (self->mData));
- SetControlValue (self->mFromValuesList2Handle, GetFromValuesList4 (self->mData));
- SetControlValue (self->mFromMenuHandle, GetFromMenu3 (self->mData));
- BuildTextListList (self->mTextListHandle);
- SetListBoxChoice (self->mTextListHandle, GetTextList3 (self->mData));
- }
-
- //----------
- void ModelessStuff_DoItem (
- ModelessStuff* self,
- SInt16 inItemHit)
- {
- switch (inItemHit) {
- case kToolsPalette:
- SetTools3 (self->mData, GetControlValue (self->mToolsHandle));
- break;
- case kFromValuesList2Popup:
- SetFromValuesList4 (self->mData, GetControlValue (self->mFromValuesList2Handle));
- break;
- case kFromMenuPopup:
- SetFromMenu3 (self->mData, GetControlValue (self->mFromMenuHandle));
- break;
- case kTextListList:
- SetTextList3 (self->mData, GetListBoxChoice (self->mTextListHandle));
- break;
-
- } // switch
- }
-
- //----------
- void ModelessStuff_DataChanged (
- ModelessStuff* self,
- long inDataID)
- {
- if (inDataID == idTools3) {
- SetControlValue (self->mToolsHandle, GetTools3 (self->mData));
- }
- if (inDataID == idFromValuesList4) {
- SetControlValue (self->mFromValuesList2Handle, GetFromValuesList4 (self->mData));
- }
- if (inDataID == idFromMenu3) {
- SetControlValue (self->mFromMenuHandle, GetFromMenu3 (self->mData));
- }
- }
-
- //----------
- Boolean ModelessStuff_Filter (
- ModelessStuff* self,
- EventRecord *ioEvent,
- DialogItemIndex *outItemHit)
- {
- return AMDialog_Filter ((AMDialog*)self, ioEvent, outItemHit);
- }
-